<?php

namespace Model;

class Login {
	
	private $db = null;
	
	public function __construct(Database $db) {
		$this->db = $db;
	}
	
	// Loggar in användaren
	public function do_login($username, $password) {
		
		// Kryptera lösenord
		$hash = md5($this->db->salt.$password.$this->db->salt);
		
		// Matcha mot databas
		$stmt = $this->db->prepare("SELECT user_id FROM users WHERE user_name = ? AND user_pass = ?");
		$stmt->bind_param('ss', $username, $hash);
		
		$match_user = $this->db->select_one($stmt);
		
		// Om användaren finns...
		return ($match_user != null);
		
	}
	
	public static function test(Database $db) {
		
		$sut = new Login($db);
		
		// Testa fel användarnamn och lösenord
		if ($sut->do_login("SUT::TEST::LOGIN", "SUTtest123")) {
			echo "Fel: Det gick att logga in trots fel uppgifter.";
			return false;
		}
		
		// Testa fel lösenord
		if ($sut->do_login("WP_1dv408", "SUTtest123")) {
			echo "Fel: Det gick att logga in trots delvis fel uppgifter.";
			return false;
		}
		
		// Testa rätt uppgifter
		if (!$sut->do_login("WP_1dv408", "JB222iy")) {
			echo "Fel: Det gick inte att logga in trots rätt uppgifter.";
			return false;
		}
		
		echo "Lyckat Login-test!";
		return true;
		
	}
	
}

?>